package cn.stylefeng.guns.modular.production.productionOrder.entity;

import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.math.BigDecimal;

/**
 * 生产订单表实例类
 *
 * @author panl
 * @since 2023/12/15 11:29
 */
@TableName("erp_order")
@Data
@EqualsAndHashCode(callSuper = true)
public class Order extends BaseEntity {

    /**
     * 数据机构
     */
    @TableField("ORG_DATA_CODE")
    @ChineseDescription("数据机构")
    private String orgDataCode;

    /**
     * 订单ID(erp.modid)
     */
    @TableId(value = "ORDER_ID", type = IdType.ASSIGN_ID)
    @ChineseDescription("订单ID(erp.modid)")
    private String orderId;

    /**
     * 件号
     */
    @TableField("ITEM_CODE")
    @ChineseDescription("件号")
    private String itemCode;

    /**
     * 批次号
     */
    @TableField("BATCH_CODE")
    @ChineseDescription("批次号")
    private String batchCode;

    /**
     * 工艺路径
     */
    @TableField("ROUTE_CODE")
    @ChineseDescription("工艺路径")
    private String routeCode;

    /**
     * 优先级
     */
    @TableField("PRIORITY")
    @ChineseDescription("优先级")
    private BigDecimal priority;

    /**
     * 状态（1：未确认，2：已确认，3：生产中，4：暂停（暂时不用），5：已完成  ，6：手动关单，7：已发货，8：使用中，9:使用完成）
     */
    @TableField("STATUS")
    @ChineseDescription("状态（1：未确认，2：已确认，3：生产中，4：暂停（暂时不用），5：已完成  ，6：手动关单，7：已发货，8：使用中，9:使用完成）")
    private BigDecimal STATUS;

    /**
     * 计划数量
     */
    @TableField("PLAN_COUNT")
    @ChineseDescription("计划数量")
    private BigDecimal planCount;

    /**
     * 完成数量
     */
    @TableField("COMP_COUNT")
    @ChineseDescription("完成数量")
    private BigDecimal compCount;

    /**
     * 合格品数量
     */
    @TableField("GOOD_COUNT")
    @ChineseDescription("合格品数量")
    private BigDecimal goodCount;

    /**
     * 不合格品数量
     */
    @TableField("NG_COUNT")
    @ChineseDescription("不合格品数量")
    private BigDecimal ngCount;

    /**
     * 合格率
     */
    @TableField("QRATE")
    @ChineseDescription("合格率")
    private BigDecimal QRATE;

    /**
     * 实际开始时间
     */
    @TableField("START_TIME")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ChineseDescription("实际开始时间")
    private Date startTime;

    /**
     * 实际完成时间
     */
    @TableField("END_TIME")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ChineseDescription("实际完成时间")
    private Date endTime;

    /**
     * 计划开始时间(ERP)
     */
    @TableField("PLAN_START_TIME")
    @ChineseDescription("计划开始时间(ERP)")
    private Date planStartTime;

    /**
     * 计划结束时间(ERP)
     */
    @TableField("PLAN_END_TIME")
    @ChineseDescription("计划结束时间(ERP)")
    private Date planEndTime;

    /**
     * 来源（1：ERP  2：人工）
     */
    @TableField("SOURCE")
    @ChineseDescription("来源（1：ERP  2：人工）")
    private BigDecimal SOURCE;

    /**
     * 齐套（0,0,0  原材料、刀具、工装夹具）
     */
    @TableField("KITTING")
    @ChineseDescription("齐套（0,0,0  原材料、刀具、工装夹具）")
    private String KITTING;

    /**
     * 加工零件状态(样件、首件、量产)
     */
    @TableField("ITEM_STATUS")
    @ChineseDescription("加工零件状态(样件、首件、量产)")
    private String itemStatus;

}
